
// F. Chaxel 2010

#include "IO.h"

#include <linux/gpio_syscalls.h>

//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
IO::IO(unsigned char Port, unsigned int Pin, unsigned char Dir)
{ 
	PORT=Port; PIN=Pin, DIR=Dir; 
	gpiosetdir(PORT, DIR, PIN); 
}

//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
void IO::SetDir(unsigned char Dir)
{
	DIR=Dir;
	gpiosetdir(PORT, DIR, PIN); 
}
//////////////////////////////////////////////////////////////////////
void IO::SetOn()
{

	if (DIR==DIROUT)
		gpiosetbits(PORT, PIN);

}
//////////////////////////////////////////////////////////////////////
void IO::SetOff()
{

	if (DIR==DIROUT)
		gpioclearbits(PORT, PIN);

}
//////////////////////////////////////////////////////////////////////
void IO::Toggle()
{

	if (DIR==DIROUT)
		gpiotogglebit(PORT, PIN);

}
//////////////////////////////////////////////////////////////////////
bool IO::IsOn()
{

	if (gpiogetbits(PORT,PIN)==1)
		return true;
	else
		return false;

}
//////////////////////////////////////////////////////////////////////
bool IO::IsOff()
{

	return (!IsOn());

}
